import qpageview
from PyQt5.QtCore import Qt
from qpageview import util


class pageView(qpageview.View):
    """
    Класс для отображения заданий
    """
    def __init__(self, parent=None):
        """
        Конструктор класса
        """
        super().__init__(parent)
        self.strictPagingEnabled = False

    def wheelEvent(self, ev):
        """
        Обработка вращения скроллера
        """
        if self.wheelZoomingEnabled and ev.angleDelta().y() and ev.modifiers() & Qt.CTRL:
            factor = 1.1 ** util.sign(ev.angleDelta().y())
            self.setZoomFactor(self.zoomFactor() * factor, ev.pos())
        elif not ev.modifiers():
            # Не переходить к дргому заданию по вращению скроллера
            sb = self.verticalScrollBar()
            if ev.angleDelta().y() > 0 and sb.value() == 0:
                pass
            elif ev.angleDelta().y() < 0 and sb.value() == sb.maximum():
                pass
            else:
                super().wheelEvent(ev)
        else:
            super().wheelEvent(ev)

    def keyPressEvent(self, ev):
        """
        Обработка нажатия PgUp и PgDn
        """
        sb = self.verticalScrollBar()
        if ev.key() == Qt.Key_PageUp and sb.value() == 0:
            pass
        elif ev.key() == Qt.Key_PageDown and sb.value() == sb.maximum():
            pass
        else:
            super().keyPressEvent(ev)

